---
title: "SQL-APPWORX-001: Submit Appworx batch job"
summary: Application-layer call to the submit_appworx_job Oracle stored procedure to submit an Appworx batch job.
status: draft
owner: <owner>
last_reviewed: 2026-08-21
library: SAIF.Services.Appworx
reference_type: package
---

# SQL-APPWORX-001 Submit Appworx batch job

This is an application-layer stored-procedure call: `clsRequestAppworxJob` builds an `IDataRequest` inline in `SubmitBatchJob()` and invokes `submit_appworx_job` via the SAIF BOF data portal to schedule an Appworx batch job with a module name, requestor, printer, and up to 20 optional string arguments.

## Classification

| Field | Value |
| --- | --- |
| **SQL ID** | SQL-APPWORX-001 |
| **Operation type** | N/A (Application layer) |
| **Execution method** | Stored procedure |
| **Database** | Oracle |
| **Command type** | StoredProcedure |
| **Business object** | N/A (Application layer) |
| **Criteria property** | N/A |
| **Lifecycle method** | N/A |
| **Application class** | `clsRequestAppworxJob` |

## Parameters

| Parameter | Direction | Type | Max length | Description |
| --- | --- | --- | --- | --- |
| `:inModule` | Input | String | 30 | Identifies the Appworx job/module to run. |
| `:inRequestor` | Input | String | 32 | Requesting user/system identity recorded with the job submission (default `"APPWORX"`). |
| `:inPrinter` | Input | String | 30 | Output/print destination for job output (default `"SYSOUT"`). |
| `:inArg1`–`:inArg20` | Input | `clsSmartString` | 4000 each | Up to 20 job-specific string arguments; each is bound only when the corresponding `ArgN` property is not empty (see [BR-APX-001](../business-rules.md#br-apx-001-optional-arguments-omitted-when-empty)). |

## Tables

Unknown — the `submit_appworx_job` procedure body resides in the Oracle database and was not retrieved during analysis; no tables are referenced in the calling .NET code**.

## Sample SQL

```vbnet
-- As constructed in SAIF.Services.Appworx\clsRequestAppworxJob.vb, SubmitBatchJob()
DataRequest.ID = "clsRequestJob.SubmitBatchJob"
DataRequest.RequestType = DataRequestType.NonQuery
DataRequest.CommandType = CommandType.StoredProcedure
DataRequest.SQLStatement = "submit_appworx_job"

DataRequest.AddParm("inModule", ModuleName, 30)
DataRequest.AddParm("inRequestor", Requestor, 32)
DataRequest.AddParm("inPrinter", Printer, 30)

' Conditionally added only when the corresponding ArgN value is not empty:
DataRequest.AddParm("inArg1", Arg1, 4000)
DataRequest.AddParm("inArg2", Arg2, 4000)
' ... through ...
DataRequest.AddParm("inArg20", Arg20, 4000)
```

Equivalent executable call signature against the Oracle stored procedure (parameter order reflects `AddParm` call order in source; procedure body resides in the Oracle database and was not retrieved this run**):

```sql
submit_appworx_job(
  :inModule,
  :inRequestor,
  :inPrinter,
  :inArg1,
  :inArg2,
  :inArg3,
  :inArg4,
  :inArg5,
  :inArg6,
  :inArg7,
  :inArg8,
  :inArg9,
  :inArg10,
  :inArg11,
  :inArg12,
  :inArg13,
  :inArg14,
  :inArg15,
  :inArg16,
  :inArg17,
  :inArg18,
  :inArg19,
  :inArg20)
```

`inArg1`–`inArg20` are supplied conditionally (only non-empty values are bound); the actual parameter list passed at runtime may omit any trailing/interior `inArgN` entries depending on which `ArgN` properties were set by the caller*.

## Operations and processes
- [Submit Appworx batch job](../operations/submit-appworx-batch-job.md)

## Business rules
- [BR-APX-001: Optional arguments omitted when empty](../business-rules.md#br-apx-001-optional-arguments-omitted-when-empty)
- [BR-APX-002: Submission failures are wrapped and rethrown](../business-rules.md#br-apx-002-submission-failures-are-wrapped-and-rethrown)

> **Note:** Statements marked with * were inferred from code structure, naming conventions, or
> contextual evidence where direct confirmation was not available in source artifacts. Statements
> marked with ** could not be confirmed; treat as unknown until verified.

## Sources
- `SAIF.Services.Appworx\clsRequestAppworxJob.vb`
